﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Public;
using BLL;

namespace QLNhanKhau
{
    public partial class frmKhaiTu : DevComponents.DotNetBar.Metro.MetroForm
    {
        public frmKhaiTu()
        {
            InitializeComponent();
        }

        private void btnTim_Click(object sender, EventArgs e)
        {
            if (txtSoSHK.Text == "")
            {
                MessageBox.Show("Nhập số sổ hộ khẩu cần tìm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            int SoSHK = int.Parse(txtSoSHK.Text);
            SoHoKhauPublic shk = SoHoKhauBLL.LoadSoHoKhauBySoSHK(SoSHK);
            if (shk == null)
            {
                txtDuong.Text = txtAp.Text = txtSoNha.Text = txtChuHo.Text = "";
                dgvNhanKhau.DataSource = null;
                groupBox1.Enabled = false;
                grbThongTinKhaiTu.Enabled = false;
                MessageBox.Show("Không tìm thấy!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else
            {
                List<NhanKhauPublic> list_nk = NhanKhauBLL.LoadNhanKhauByMaSHK(shk.MaSHK);
                groupBox1.Enabled = true;
                grbThongTinKhaiTu.Enabled = true;
                txtChuHo.Text = list_nk.Find(item => item.MaQH == 1).HoTen;
                //txtChuHo.Text = list_nk.Where(item => item.QuanHe == "Chủ hộ").FirstOrDefault().HoTen;

                dgvNhanKhau.DataSource = list_nk;
                //dgvNhanKhau.Columns[0].HeaderText = "Mã nhân khẩu";
                dgvNhanKhau.Columns[1].HeaderText = "Họ và tên";
                //dgvNhanKhau.Columns[3].HeaderText = "Tên gọi khác";
                dgvNhanKhau.Columns[4].HeaderText = "CMND";
                dgvNhanKhau.Columns[5].HeaderText = "Ngày sinh";
                //dgvNhanKhau.Columns[6].HeaderText = "Nơi sinh";
                dgvNhanKhau.Columns[7].HeaderText = "Giới tính";
                dgvNhanKhau.Columns[8].HeaderText = "Quê quán";
                dgvNhanKhau.Columns[9].HeaderText = "Dân tộc";
                dgvNhanKhau.Columns[10].HeaderText = "Nghề nghiệp";
                dgvNhanKhau.Columns[11].HeaderText = "Quốc tịch";
                //dgvNhanKhau.Columns[12].HeaderText = "Chứng tử";
                dgvNhanKhau.Columns[13].HeaderText = "Tôn giáo";
                dgvNhanKhau.Columns[14].HeaderText = "Trình độ";
                //dgvNhanKhau.Columns[15].HeaderText = "Sổ hộ khẩu";
                dgvNhanKhau.Columns[16].HeaderText = "Quan hệ";
                dgvNhanKhau.Columns[0].Visible = false;
                //dgvNhanKhau.Columns[1].Visible = false;
                dgvNhanKhau.Columns[2].Visible = false;
                dgvNhanKhau.Columns[3].Visible = false;
                //dgvNhanKhau.Columns[4].Visible = false;
                //dgvNhanKhau.Columns[5].Visible = false;
                dgvNhanKhau.Columns[6].Visible = false;
                //dgvNhanKhau.Columns[7].Visible = false;
                //dgvNhanKhau.Columns[8].Visible = false;
                dgvNhanKhau.Columns[9].Visible = false;
                //dgvNhanKhau.Columns[10].Visible = false;
                dgvNhanKhau.Columns[11].Visible = false;
                dgvNhanKhau.Columns[12].Visible = false;
                dgvNhanKhau.Columns[13].Visible = false;
                dgvNhanKhau.Columns[14].Visible = false;
                dgvNhanKhau.Columns[15].Visible = false;
                //dgvNhanKhau.Columns[16].Visible = false;

                txtDuong.Text = shk.Duong;
                txtAp.Text = shk.KhuPho.ToString();
                txtSoNha.Text = shk.SoNha;
                txtNoiOCuoiCung.Text = txtSoNha.Text + ", " + txtDuong.Text + ",KP/Ấp " + txtAp.Text;

            }
            DataGridViewCellStyle style = new DataGridViewCellStyle();
            style.ForeColor = Color.AliceBlue;
            style.BackColor = Color.Red;
            for (int i = dgvNhanKhau.RowCount - 1; i >= 0; i--)
            {
                if ((int)dgvNhanKhau.Rows[i].Cells[11].Value !=0)
                {
                    //MessageBox.Show("geg");
                    dgvNhanKhau.Rows[i].DefaultCellStyle = style;
                }
                //if ((bool)dgvNguoiDung.Rows[i].Cells[5].Value==true)
                //{
                //  dgvNguoiDung.Rows[i].DefaultCellStyle = style;
                //}

            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Thoát không lưu", "Thoát", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (result == DialogResult.Yes)
            {
                this.MdiParent = null;
                this.Dispose();
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (txtSoChungTu.Text == "" || txtSoBaoTu.Text == "" || txtNoiCapBaoTu.Text == "" || txtNguoiDangki.Text == "" || txtLyDoChet.Text == "" ||
                txtNoiChet.Text == "" || txtNoiOCuoiCung.Text == ""|| txtNoiCapChungTu.Text == "")
            {
                MessageBox.Show("Vui lòng nhập đầy đủ thông tin", "Thông báo nhập liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            KhaiTuPublic ct = new KhaiTuPublic();
            ct.MaKT = int.Parse(txtMaCT.Text);
            ct.SoChungTu =int.Parse(txtSoChungTu.Text);
            ct.NguoiDangKi = txtNguoiDangki.Text;
            //ct.NguoiCap = txtNguoiCap.Text;
            ct.CanBoHoTich = (int)cmbCanBoHoTich.SelectedValue;
            ct.NguoiCap = (int)cmbNguoiCapKT.SelectedValue;
            ct.ChucVu = NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiCapKT.SelectedValue).MaCV;
            //ct.ChucVu = txtChucVu.Text;
            ct.NgayCapBaoTu =DateTime.Parse(dateNgayCapBaoTu.Text);
            //ct.NgayChet = DateTime.Parse(dateNgayChet.Text+nudGio.Value+nudPhut.Value);
            ct.NgayChet = DateTime.Parse(dateNgayChet.Text).AddHours((double)nudGio.Value).AddMinutes((double)nudPhut.Value);
            ct.NoiCapBaoTu = txtNoiCapChungTu.Text;
            ct.NgayCapChungTu = DateTime.Parse(dateNgayCapChungTu.Text);
            ct.NoiCapChungTu = int.Parse(ThietLapBLL.LoadMaDiaChi());
            ct.NoiChet = txtNoiChet.Text;
            ct.LyDoChet = txtLyDoChet.Text;
            ct.NoiOCuoiCung = txtNoiOCuoiCung.Text;

            ct.NgayNhap = DateTime.Parse(dateNgayNhap.Text);
            ct.NguoiNhan = (int)cmbNguoiNhan.SelectedValue;
            //ct.CanBoDangKi = (int)cmbCanBoDangKi.SelectedValue;
            ct.CanBoDangKi = frmDangNhap.user_login.MaND;
            ct.ChucVuNguoiNhan = NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiNhan.SelectedValue).MaCV;
            
            KhaiTuBLL.InsertKhaiTu(ct);

            NhanKhauBLL.UpdateKhaiTu(int.Parse(txtMaCT.Text), int.Parse(txtMaCT.Text));
            // dòng này hả?uhm


        }

        private void dgvNhanKhau_SelectionChanged(object sender, EventArgs e)
        {
            DataGridViewCell cell = null;
             
            foreach (DataGridViewCell select in dgvNhanKhau.SelectedCells)
            {
                cell = select;
            }
            if (cell != null)
            {
                DataGridViewRow row = cell.OwningRow;
                txtMaNK.Text = row.Cells[0].Value.ToString();
                txtHoTen.Text = (string)row.Cells[1].Value;
                txtCMND.Text = (string)row.Cells[4].Value;    
                txtNgaySinh.Text=((DateTime)row.Cells[5].Value).ToString("dd-MM-yyyy");
                if ((bool)row.Cells[6].Value == true)
                    rdtGioiTinhNam.Checked = true;
                else
                    rdtGioiTinhNu.Checked = true;
                txtQueQuan.Text=(string)row.Cells[7].Value;
                txtDanToc.Text = (DanTocBLL.GetDanTocByMaDT((byte)row.Cells[8].Value).TenDanToc).ToString();
              
                txtNgheNghiep.Text = (string)row.Cells[9].Value;
                txtQuocTich.Text = (QuocTichBLL.GetQuocTichByMaQT((byte)row.Cells[10].Value).TenQuocTich).ToString();
                txtTonGiao.Text = (TonGiaoBLL.GetTonGiaoByMaTG((byte)row.Cells[12].Value).TenTonGiao).ToString();
                txtTrinhDo.Text = (TrinhDoBLL.GetTrinhDoByMaTD((byte)row.Cells[13].Value).TenTrinhDo).ToString();

                txtMaCT.Text = ((int)row.Cells[0].Value).ToString();
                txtMaCT.Enabled = false;

                KhaiSinhPublic ks =KhaiSinhBLL.LoadKhaiSinhByMaKS((int)row.Cells[0].Value);
                txtNoiSinh.Text=ks.NoiSinh;

                //kiểm tra đã chết 
                if (row.Cells[14].Value.ToString() == "0")
                {
                    grbThongTinKhaiTu.Enabled = false;
                    labChet.Text = "Người nãy đã được khai tử";
                }
                // ví dụ muốn lấy tất cả thông tin của nhân khẩu với mank =  row.Cells[2].Value.ToString()
                // thực hiện câu truy vấn với mank, rồi đổ dữ liệu từ câu truy vấn trả về vào các textbox.
                //Hiểu k. Vì cái lưới hiện thời k chưa đủ dữ liệu để hiển thị ra textbox
            }
            
        }


        private void txtSoChungTu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar)||txtSoChungTu.Text.Length>8)
            {
                e.Handled = true;
            }
        }

        private void textSoBaoTu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar)||txtSoBaoTu.Text.Length>8)
            {
                e.Handled = true;
            }
        }

        private void txtHoTen_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = false;
        }

        private void txtNoiCapBaoTu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 49)
            {
                e.Handled =true;
            }
        }

        private void txtNguoiDangki_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 49)
            {
                e.Handled = true;
            }
        }

        private void txtNoiChet_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 49)
            {
                e.Handled = true;
            }
        }

        private void txtNoiOCuoiCung_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 49)
            {
                e.Handled = true;
            }
        }

        private void txtCanBoHoTich_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 29)
            {
                e.Handled = true;
            }
        }

        private void txtNoiCapChungTu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 49)
            {
                e.Handled = true;
            }
        }

        private void txtNguoiCap_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 29)
            {
                e.Handled = true;
            }
        }

        private void txtChucVu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtNoiCapBaoTu.Text.Length > 11)
            {
                e.Handled = true;
            }
        }

        private void frmKhaiTu_Load(object sender, EventArgs e)
        {
            cmbNguoiNhan.DataSource = NguoiDungBLL.LoadNguoiCap();
            cmbNguoiNhan.DisplayMember = "HoTen";
            cmbNguoiNhan.ValueMember = "MaND";

            cmbCanBoDangKi.Text = frmDangNhap.user_login.HoTen.ToString();
            //load chuc vu
            NguoiDungPublic nd = NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiNhan.SelectedValue);
            //.Text = nd.ChucVu;
            txtChucVuNguoiNhan.Text = ChucVuBLL.LoadChucVuByMaCV(nd.MaCV).TenChucVu;
            txtChucVuNguoiNhan.Enabled = false;

            dateNgayNhap.Value = DateTime.Parse(DateTime.Now.ToString());

            cmbCanBoHoTich.DataSource = NguoiDungBLL.LoadCanBoHoTich();
            cmbCanBoHoTich.DisplayMember = "HoTen";
            cmbCanBoHoTich.ValueMember = "MaND";

            cmbNguoiCapKT.DataSource = NguoiDungBLL.LoadChuTich();
            cmbNguoiCapKT.DisplayMember = "HoTen";
            cmbNguoiCapKT.ValueMember = "MaND";

            txtChucVuKT.Text = ChucVuBLL.LoadChucVuByMaCV(NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiCapKT.SelectedValue).MaCV).TenChucVu;
            txtChucVuKT.Enabled = false;
        }

        private void cmbNguoiNhan_SelectionChangeCommitted(object sender, EventArgs e)
        {
            NguoiDungPublic nd = NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiNhan.SelectedValue);
            //.Text = nd.ChucVu;
            txtChucVuNguoiNhan.Text = ChucVuBLL.LoadChucVuByMaCV(nd.MaCV).TenChucVu;
            txtChucVuNguoiNhan.Enabled = false;

        }

        private void txtSoSHK_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) || txtSoSHK.Text.Length > 8 && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtLyDoChet_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ( txtSoSHK.Text.Length > 49 && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void cmbNguoiCapKT_SelectionChangeCommitted(object sender, EventArgs e)
        {
            NguoiDungPublic nd = NguoiDungBLL.LoadNguoiDungByMaND((int)cmbNguoiNhan.SelectedValue);
            //.Text = nd.ChucVu;
            txtChucVuKT.Text = ChucVuBLL.LoadChucVuByMaCV(nd.MaCV).TenChucVu;
            txtChucVuKT.Enabled = false;
        }
   }
}

